package com.kgc.onlineLife.service;

import com.kgc.onlineLife.bean.Product;
import com.kgc.onlineLife.util.Page;

import java.util.List;

/**
 * Created On : 2022/4/15.
 * <p>
 * Author     : nainai
 * <p>
 * Description: 商品业务接口
 */
public interface ProductService {

    /**
     * @author : nainai
     * @date   : 2022/4/16
     * @param  : [java.lang.Integer]
     * @return : java.util.List<com.kgc.onlineLife.bean.Product>
     * @description : 获取所有商品信息，带分页
     */
    List<Product> queryProducts(Page page);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.Integer]
     * @return : java.util.List<com.kgc.onlineLife.bean.Product>
     * @description : 查询该分类下正在上线商品
     */
    List<Product> queryOnlineProductByCid(Integer cid);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.String]
     * @return : java.util.List<com.kgc.onlineLife.bean.Product>
     * @description : 根据商品名，模糊查询商品详情
     */
    List<Product> queryProductsByName(String name);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.Integer]
     * @return : com.kgc.onlineLife.bean.Product
     * @description : 根据id查询商品详情
     */
    Product queryProductById(Integer id);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.Integer]
     * @return : boolean
     * @description : 删除商品
     */
    boolean removeProductById(Integer id);
    
    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [java.lang.Integer]
     * @return : boolean
     * @description : 修改商品上线状态，返回是否修改成功 
     */
    boolean modOnline(Integer id);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [com.kgc.onlineLife.bean.Product]
     * @return : boolean
     * @description : 添加商品
     */
    boolean addProduct(Product product);

    /**
     * @author : nainai
     * @date   : 2022/4/17
     * @param  : [com.kgc.onlineLife.bean.Product]
     * @return : boolean
     * @description : 根据id修改商品信息
     */
    boolean modProductById(Product product);

}

